package interfazeak;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;

import laguntzaileak.Bezerolag;


import db.BezeroKud;
import db.BiltegiaKud;
import db.UpelaKud;

import Taulak.MTBBezeroak;

public class Bezeroa extends JFrame {

	private JPanel contentPane;
	private Biltegia guraso;
	private JButton ezabatu;
	private JButton gehitu;
	private JTable table;
	private MTBBezeroak bezerotaula;
	private JButton atzera;
	private JButton gordebtn;
	private JButton kobratu;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			private Biltegia Biltegia;

			public void run() {
				try {
					Bezeroa frame = new Bezeroa(this.Biltegia);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Bezeroa(Biltegia guraso) {
		this.guraso=guraso;
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 748, 452);
		setTitle("BEZEROAK");
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		

		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(20,80, 500, 250);
		contentPane.add(scrollPane);

		table = new JTable();
		bezerotaula = new MTBBezeroak();
		table.setModel(bezerotaula);
	
		scrollPane.setViewportView(table);
		
		atzera = new JButton("BILTEGIA");
		atzera.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				
				Bezeroa.this.atzera();
			}
		});
		atzera.setBounds(200, 380, 117, 25);
		contentPane.add(atzera);
		
	
		gehitu = new JButton("GEHITU");
		gehitu.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
			
				Bezeroa.this.gehituBezeroa();
			}
		});
		gehitu.setBounds(560, 150, 140, 25);
		contentPane.add(gehitu);
		
		ezabatu = new JButton("EZABATU");
		ezabatu.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (table.getSelectedRow() == -1) {
					JOptionPane.showMessageDialog(Bezeroa.this,
							"Lerro bat aukeratu", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
				
				} else {
					int konfirmatu = JOptionPane.showConfirmDialog(
							Bezeroa.this, "Ezabatu nahi duzu?");

					if (JOptionPane.OK_OPTION == konfirmatu) {
						Bezeroa.this.ezabatu();
					}
				}

			}

		});
		ezabatu.setBounds(560, 200, 140, 25);
		contentPane.add(ezabatu);
		
		kobratu = new JButton("KOBRATU");
		kobratu.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
		
				if (table.getSelectedRow() == -1) {
					JOptionPane.showMessageDialog(Bezeroa.this,
							"Lerro bat aukeratu", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
				}
				else {
					Bezeroa.this.ordaindu();
				}
			}
		});
		kobratu.setBounds(560, 250, 140, 25);
		contentPane.add(kobratu);
		bistaratu();
	}

	protected void ordaindu() {
		
		
		int lerroa = table.getSelectedRow();
		String izena = (String) table.getValueAt(lerroa, 0);
		String nif = (String) table.getValueAt(lerroa, 1);
		int tfno = (int) table.getValueAt(lerroa, 2);
		int id = BezeroKud.lortuIdBezeroa(izena,nif,tfno);
		
		JDialog dialog = new Ordaindu(Bezeroa.this, true,id, izena);
		dialog.setVisible(true);
	}

	protected void ezabatu() {
	
		int lerroa = table.getSelectedRow();
		String izena = (String) table.getValueAt(lerroa, 0);
		String nif = (String) table.getValueAt(lerroa, 1);
		int tfno = (int) table.getValueAt(lerroa, 2);
		int id = BezeroKud.lortuIdBezeroa(izena,nif,tfno);

		BezeroKud.ezabatu(id);
		bezerotaula.ezabatu(lerroa);
	}

	protected void gehituBezeroa() {
		
		JDialog dialog = new GehituBezeroa(Bezeroa.this, true);
		dialog.setVisible(true);
	}

	protected void atzera() {
	
		Biltegia m = guraso;
		m.setVisible(true);
		this.dispose();

	}

	public void gehituBezero(Bezerolag bezlag) {
	
		
		BezeroKud.sartuBezeroa(bezlag);
		
	}

	public void ezabatutaula() {
	
		int ler = table.getRowCount();
		bezerotaula.taulaHasieratu(ler);
	}

	public void bistaratu() {

		ResultSet rs = BezeroKud.kargatu();
		try {
			while (rs.next()) {
				int idBeze = rs.getInt("idBezeroa");
				Bezerolag lag = new Bezerolag(null,null, 0);
				lag = BezeroKud.lortuDatuak(idBeze);
				
				String izena = lag.getIzena();
				String nif = lag.getNif();
				int telefono = lag.getTelefonoa();
				int kutxak2 = BezeroKud.lortupasadankutxak(idBeze);
				int kutxak1 = BezeroKud.lortuaurtengokutxak(idBeze); 
				int i = BezeroKud.lortukutxakguztira(idBeze);
				
				int kobratu = BezeroKud.lortuordainduta(idBeze);
	

				int zorrak= i-kobratu;
				bezerotaula.kargatu(izena, nif,telefono,kutxak1,kutxak2,zorrak);
			}
		} catch (SQLException e) {

			e.printStackTrace();
		}
	}

}
